#!/usr/bin/env node

// console.log('start')

// setTimeout(() => {

//     console.log('timer1')

//     Promise.resolve().then(function () {

//         console.log('promise1')

//     })

// }, 0)

// setTimeout(() => {

//     console.log('timer2')

//     Promise.resolve().then(function () {

//         console.log('promise2')

//     })

// }, 0)

// Promise.resolve().then(function () {

//     console.log('promise3')

// })

// const fs = require('fs')
// fs.readFile('./index.html', () => {
//     // setTimeout(() => {
//     //     console.log('timeout');
//     // }, 0)
//     // setImmediate(() => {
//     //     console.log('immediate')
//     // })

//     console.log('start')
//     setTimeout(() => {
//         console.log('timer1')
//         Promise.resolve().then(function () {
//             console.log('promise1')
//         })
//     }, 0)
//     setTimeout(() => {
//         console.log('timer2')
//         Promise.resolve().then(function () {
//             console.log('promise2')
//         })
//     }, 0)
//     Promise.resolve().then(function () {
//         console.log('promise3')
//     })
//     console.log('end')
// })

// setTimeout(() => {
//     console.log('s1');
//     Promise.resolve().then(() => {
//         console.log('p1');
//     })
//     process.nextTick(() => {
//         console.log('t1');
//     })
// })

// Promise.resolve().then(() => {
//     console.log('p2')
// })

// console.log('start');

// setTimeout(() => {
//     console.log('s2');
//     Promise.resolve().then(() => {
//         console.log('p3');
//     })
//     process.nextTick(() => {
//         console.log('t2');
//     })
// })

// console.log('end');

// setTimeout(() => {
//     console.log('timer1')
//     Promise.resolve().then(function () {
//         console.log('promise1')
//     })
// }, 0)
// setTimeout(() => {
//     console.log('timer2')
//     Promise.resolve().then(function () {
//         console.log('promise2')
//     })
// }, 0)


console.log('outer');
setTimeout(() => {
    setTimeout(() => {
        console.log('setTimeout');
    }, 0);
    setImmediate(() => {
        console.log('setImmediate');
    });
}, 0);

